home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume16 / ecu3 / part35 < prev    next >
Encoding:
Internet Message Format  |  1991-01-06  |  47.7 KB

  1. From: wht@n4hgf.uucp (Warren Tucker)
  2. Newsgroups: comp.sources.misc
  3. Subject: v16i059:  ECU async comm package rev 3.0, Part35/35
  4. Message-ID: <1991Jan6.054156.29200@sparky.IMD.Sterling.COM>
  5. Date: 6 Jan 91 05:41:56 GMT
  6. Approved: kent@sparky.imd.sterling.com
  7. X-Checksum-Snefru: 6f7bd465 1ba6959f 4ec1ab22 aa273622
  8.  
  9. Submitted-by: wht@n4hgf.uucp (Warren Tucker)
  10. Posting-number: Volume 16, Issue 59
  11. Archive-name: ecu3/part35
  12.  
  13. ---- Cut Here and feed the following to sh ----
  14. #!/bin/sh
  15. # This is part 35 of ecu3
  16. if touch 2>&1 | fgrep 'amc' > /dev/null
  17.  then TOUCH=touch
  18.  else TOUCH=true
  19. fi
  20. # ============= models/nonansikeys ==============
  21. if test ! -d 'models'; then
  22.     echo 'x - creating directory models'
  23.     mkdir 'models'
  24. fi
  25. echo 'x - extracting models/nonansikeys (Text)'
  26. sed 's/^X//' << 'SHAR_EOF' > 'models/nonansikeys' &&
  27. X#+------------------------------------------------------------------------
  28. X# ECU 3.0 nonansikeys
  29. X#
  30. X# This file contains mapping information to convert non-ANSI
  31. X# keyboard function keys to an internal ECU function key
  32. X# representation
  33. X# 
  34. X# The format of an entry is shown below in the 'ansilike' example (used
  35. X# to ansilike ECU from the console by defining an ansi terminal type
  36. X# nevertheless equivalent to ansi).
  37. X# 
  38. X# The first line(s) in a terminal keyboard description begin in
  39. X# column 1 and contain the terminal types (a la $TERM) for which
  40. X# the keyboard description are valid.  The example entry contains
  41. X# several references to terminal types containing the substring
  42. X# 'ansi'.  These are included only as an example of one keyboard
  43. X# description servicing multiple terminal types.
  44. X# 
  45. X# ECU determines whether a terminal meets the ansi vs.  ANSI
  46. X# distinction by searching for 'ansi' in the $TERM environment
  47. X# variable (without regard to case: 'AnSi' will match as well as
  48. X# 'ansi').  If your keyboard matches the ANSI specification even
  49. X# though your $TERM environment variable does not contain 'ansi'
  50. X# (such as 'sun'), then you may add the terminal type to the 'ansilike'
  51. X# entry rather than create a separate entry.
  52. X# 
  53. X# Following the "first lines" are key definition entries, each
  54. X# preceded by at least one tab or space.  Each entry is composed of
  55. X# three fields delimited by commas.  The first field of an entry is
  56. X# the internal ECU function key name and must be chosen from the
  57. X# following strings (with no regard to case): "F1", "F2", "F3",
  58. X# "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "Home",
  59. X# "End", "PgUp", "PgDn", "CUP", "CUL", "CU5", "CUR" and "CUD" The
  60. X# second field contains the name of the key as it appears on the
  61. X# non-ANSI keyboard (such as "F16" for End on the Wyse 60).  The
  62. X# third field is a description of the character sequence generated
  63. X# by the non-ANSI keyboard when the chosen key is pressed; it is a
  64. X# string of one or more tokens separated by spaces or tabs.
  65. X# The tokens are described in full in the ECU manual sections titled
  66. X# "Function Key Recognition" and "Function Key Mapping."
  67. X# 
  68. X#-------------------------------------------------------------------------
  69. X#+:EDITS:
  70. X#:12-20-1990-23:50-wht@n4hgf-"correct" wyse entry
  71. X#:12-18-1990-19:43-wht@n4hgf-add xterm and wy60
  72. X#:12-02-1990-13:34-wht@n4hgf-creation
  73. X
  74. X#+-------------------------------------------------------------------
  75. X#   testing/example
  76. X#--------------------------------------------------------------------
  77. Xansilike
  78. Xansi
  79. Xmsdos
  80. Xdos
  81. Xdosansi
  82. Xtest
  83. X    F1:F1:          esc [ M 
  84. X    F2:F2:          esc [ N 
  85. X    F3:F3:          esc [ O 
  86. X    F4:F4:          esc [ P 
  87. X    F5:F5:          esc [ Q 
  88. X    F6:F6:          esc [ R 
  89. X    F7:F7:          esc [ S 
  90. X    F8:F8:          esc [ T 
  91. X    F9:F9:          esc [ U 
  92. X    F10:F10:        esc [ V 
  93. X    F11:F11:        esc [ W 
  94. X    F12:F12:        esc [ X 
  95. X    Home:Home:      esc [ H 
  96. X    End:End:        esc [ F 
  97. X    PgUp:PgUp:      esc [ I 
  98. X    PgDn:PgDn:      esc [ G 
  99. X    CUU:CUU:        esc [ A 
  100. X    CUL:CUL:        esc [ D 
  101. X    CU5:CU5:        esc [ E 
  102. X    CUR:CUR:        esc [ C 
  103. X    CUD:CUD:        esc [ B 
  104. X    Ins:Ins:        esc [ L
  105. X    BkTab:BackTab:  esc [ Z
  106. X
  107. X#+-------------------------------------------------------------------
  108. X#   SCO ODT 1.0 console xterm (as released, unmodified)
  109. X#--------------------------------------------------------------------
  110. Xxterm
  111. X    F1:F1:          esc [ 1 1 ~
  112. X    F2:F1:          esc [ 1 2 ~
  113. X    F3:F1:          esc [ 1 3 ~
  114. X    F4:F1:          esc [ 1 4 ~
  115. X    F5:F1:          esc [ 1 5 ~
  116. X    F6:F1:          esc [ 1 7 ~
  117. X    F7:F1:          esc [ 1 8 ~
  118. X    F8:F1:          esc [ 1 9 ~
  119. X    F9:F1:          esc [ 2 0 ~
  120. X    F10:F10:        esc [ 2 1 ~
  121. X#   F11:F11:        esc [ 2 3 ~   # decomitted to provide a BkTab
  122. X#   F12:F12:        esc [ 2 4 ~   # decomitted to provide a BkTab
  123. X    Home:Home:      esc [ 8 ~
  124. X    End:End:        esc [ 7 ~
  125. X    PgUp:PgUp:      esc [ 5 ~
  126. X    PgDn:PgDn:      esc [ 6 ~
  127. X    CUU:CUU:        esc [ A 
  128. X    CUL:CUL:        esc [ D 
  129. X#   CU5:CU5:        esc [ 8 ~     # same as HOME unfortunately
  130. X    CU5:F11:        esc [ 2 3 ~
  131. X    CUR:CUR:        esc [ C 
  132. X    CUD:CUD:        esc [ B 
  133. X    Ins:Ins:        esc [ 2 ~
  134. X#   BkTab:BackTab:  tab           # same as TAB unfortunately
  135. X    BkTab:F12:      esc [ 2 4 ~
  136. X
  137. X
  138. X#+-------------------------------------------------------------------
  139. X#    Wyse 60 Native Mode (no reprogrammed function keys)
  140. X#    (matching the keyboard tops I have, anyway)
  141. X#
  142. X# The following is for native mode Wyse 60 with no function keys
  143. X# programmed for emitting alternate sequences.  This is such a
  144. X# nice terminal in so many ways.  Too bad they cocked up the left
  145. X# and down function keys by making them indistinguishable from
  146. X# backspace and newline. You may wish to study the SCO /etc/termcap
  147. X# 'wy60ak' entry for a way around this.
  148. X#--------------------------------------------------------------------
  149. Xwyse60
  150. Xwy60
  151. Xwy60-43
  152. X    F1:F1:          soh @ cr
  153. X    F2:F1:          soh A cr
  154. X    F3:F1:          soh B cr
  155. X    F4:F1:          soh C cr
  156. X    F5:F1:          soh D cr
  157. X    F6:F1:          soh E cr
  158. X    F7:F1:          soh F cr
  159. X    F8:F1:          soh G cr
  160. X    F9:F1:          soh H cr
  161. X    F10:F10:        soh I cr
  162. X    F11:F11:        soh J cr
  163. X    F12:F12:        soh K cr
  164. X    Home:Home:      rs
  165. X    PgUp:PrevPg:    esc J
  166. X    PgDn:NextPg:    esc K
  167. X    CUU:CUU:        vt
  168. X#   CUL:CUL:        bs            # not useful (for reference only)
  169. X#   CU5:CU5: 
  170. X    CUR:CUR:        ff
  171. X    CUD:CUD:        nl # use only if you NEVER need to send a line feed
  172. X    BkTab:F14:      soh M cr
  173. X    Ins:InsChar:    esc Q
  174. X    End:Send:       esc 7
  175. SHAR_EOF
  176. $TOUCH -am 1221233690 'models/nonansikeys' &&
  177. chmod 0644 models/nonansikeys ||
  178. echo 'restore of models/nonansikeys failed'
  179. Wc_c="`wc -c < 'models/nonansikeys'`"
  180. test 5679 -eq "$Wc_c" ||
  181.     echo 'models/nonansikeys: original size 5679, current size' "$Wc_c"
  182. # ============= models/oneline.ep ==============
  183. echo 'x - extracting models/oneline.ep (Text)'
  184. sed 's/^X//' << 'SHAR_EOF' > 'models/oneline.ep' &&
  185. X#  CHK=0xF093
  186. X#--------------------------------------------------------------
  187. X# oneline.ep
  188. X#
  189. X# send command in $s0, expecting a one line response
  190. X# and a csh prompt ending in '% '
  191. X#
  192. X# returns: $s0 = one line response in $s0 if success
  193. X#          $i0 = 1 if success, else 0
  194. X#--------------------------------------------------------------
  195. X#+:EDITS:*/
  196. X#:07-11-1989-16:55-wht-get cmd became lgets
  197. X#:06-28-1989-19:36-wht-use named variables
  198. X#:06-25-1989-13:56-wht-new do command syntax
  199. X#:06-25-1989-12:33-wht-new if/while syntax
  200. X#:06-22-1989-13:30-wht-creation
  201. X
  202. X    mkvar $icsave; $icsave = %colors
  203. X    color gray
  204. X    send $s0                        # send command
  205. X    lookfor -e %chr(0x0A) 50        # scan command echo
  206. X    ifi $i0 == 0 icolor $i2;return    # if not found, return
  207. X    lgets -e $s0 500 5 '\n'            # get one line response
  208. X    lookfor '% ' 50                    # get prompt, don't echo
  209. X    # $i0 = 1 if prompt, else 0
  210. X    icolor $icsave
  211. SHAR_EOF
  212. $TOUCH -am 0507232990 'models/oneline.ep' &&
  213. chmod 0644 models/oneline.ep ||
  214. echo 'restore of models/oneline.ep failed'
  215. Wc_c="`wc -c < 'models/oneline.ep'`"
  216. test 877 -eq "$Wc_c" ||
  217.     echo 'models/oneline.ep: original size 877, current size' "$Wc_c"
  218. # ============= models/opuslogin.ep ==============
  219. echo 'x - extracting models/opuslogin.ep (Text)'
  220. sed 's/^X//' << 'SHAR_EOF' > 'models/opuslogin.ep' &&
  221. X#  CHK=0xE753
  222. X#+-----------------------------------------------------------------
  223. X#  opuslogin.ep - ecu OPUS BBS login procedure
  224. X#  wht%n4hgf@gatech.edu
  225. X#
  226. X# %argv(1) = remote name
  227. X# %argv(2) = first name
  228. X# %argv(3) = last name
  229. X# %argv(4) = password
  230. X#+-----------------------------------------------------------------
  231. X#+:EDITS:*/
  232. X#:07-11-1989-16:55-wht-get cmd became lgets
  233. X#:06-28-1989-19:36-wht-use named variables
  234. X#:06-25-1989-13:56-wht-new do command syntax
  235. X#:06-25-1989-12:33-wht-new if/while syntax
  236. X#:06-23-1989-19:46-wht-improved hayes dialer reduces need to report dial fail
  237. X#:06-19-1989-22:50-wht-use while and if statements
  238. X#:06-14-1989-15:58-wht-add login capability when already connected
  239. X#:06-11-1989-23:37-wht-creation
  240. X
  241. X    mkvar $i_csave,$i_ltimeout,$i_retries
  242. X
  243. X    $i_csave = %colors
  244. X    $i_retries=3
  245. X
  246. X    color red;    echo -n '\nauto-logon to '
  247. X    color yellow; echo -n %argv(1)
  248. X    color red;    echo    ' on '+%date+' at '+%time+'\n'
  249. X
  250. X    ifi %argc != 5    # not enough args
  251. X    {
  252. X        color red
  253. X        echo %argv(0)+' needs 5 arguments (got '+%itos(%argc)+')'
  254. X        goto SORRY1
  255. X    }
  256. X
  257. X    ifi %conn == 0 goto DIAL
  258. X
  259. X    ifs %rname == %argv(1)
  260. X    {
  261. X        color brown;  echo -n 'already connected to '
  262. X        color yellow; echo    %rname
  263. X        goto GET_LOGIN_PROMPT_RETRY
  264. X    }
  265. X
  266. XHANGUP
  267. X    ifi %conn <> 0 echo 'hanging up on '+%rname; hangup
  268. X
  269. XDIAL
  270. X    color green
  271. X    dial %argv(1); set $i1=$i0 #save dial result in $i1
  272. X    ifi $i1 == 2 color red; echo 'interrupted'; goto SORRY
  273. X    ifi $i1 != 0 goto SORRY
  274. X
  275. XTEST_MODEM_RESULT
  276. X    ifs $s0 != 'CONNECT '+%itos(%baud)
  277. X        color yellow; echo 'baud rate mismatch ... retrying'; goto HANGUP
  278. X
  279. X# give name to remote
  280. X    lookfor -e 'FIRST name: ' 150
  281. X    send %argv(2)
  282. X    lookfor -e 'LAST name: ' 150
  283. X    send %argv(3)
  284. X
  285. X    lookfor -e '[Y,n]? ' 40
  286. X    send 'Y'
  287. X
  288. X    lookfor -e 'Password: ' 80
  289. X    send %argv(4)
  290. X    lookfor -e '\n'
  291. X    set $i0=0
  292. X    goto SETCOLOR_AND_RETURN_STATUS
  293. X
  294. X# procedure failed
  295. XSORRY
  296. X    echo ''
  297. X    color red
  298. X    echo '....... sorry'
  299. X    set $i0=0
  300. X    goto SETCOLOR_AND_RETURN_STATUS
  301. X
  302. XSORRY1
  303. X    echo ''
  304. X    color red
  305. X    echo '....... sorry'
  306. X    set $i0=1
  307. X
  308. XSETCOLOR_AND_RETURN_STATUS
  309. X    icolor $i_csave
  310. X    return $i0
  311. X
  312. X# vi:set tabstop=4 shiftwidth=4:
  313. SHAR_EOF
  314. $TOUCH -am 1222003490 'models/opuslogin.ep' &&
  315. chmod 0644 models/opuslogin.ep ||
  316. echo 'restore of models/opuslogin.ep failed'
  317. Wc_c="`wc -c < 'models/opuslogin.ep'`"
  318. test 2086 -eq "$Wc_c" ||
  319.     echo 'models/opuslogin.ep: original size 2086, current size' "$Wc_c"
  320. # ============= models/p.ep ==============
  321. echo 'x - extracting models/p.ep (Text)'
  322. sed 's/^X//' << 'SHAR_EOF' > 'models/p.ep' &&
  323. X#  CHK=0x8848
  324. X#+---------------------------------------------------------
  325. X# p.eq - colorful, selective ps -aux on remote BSD system
  326. X#----------------------------------------------------------
  327. X#+:EDITS:*/
  328. X#:07-11-1989-16:55-wht-get cmd became lgets
  329. X#:06-30-1989-18:53-wht-creation
  330. X
  331. X    mkvar $icolor; $icolor = %colors
  332. X    mkvar $itimeout; $itimeout = 50
  333. X    send 'ps -aux'
  334. X    lookfor '\n' 40
  335. X    $s0 = ''
  336. X    whilei 1==1
  337. X    {
  338. X        lgets $s00 $itimeout 5 '\n'
  339. X        ifi $i0 == 0 continue
  340. X        $itimeout = 20
  341. X        ifi %instr($s0,'% ') >= 0 break    # prompt ends it
  342. X        color cyan
  343. X        ifi %instr($s0,'getty') >= 0 continue
  344. X        ifi %instr($s0,'/etc') >= 0 continue
  345. X        ifi %instr($s0,'rlogin') >= 0 continue
  346. X        ifi %instr($s0,'biod') >= 0 continue
  347. X        ifi %instr($s0,'csh') >= 0 continue
  348. X        ifi %instr($s0,'/usr/lib') >= 0 continue
  349. X        ifi %instr($s0,' i29 ') > 0 color green
  350. X        ifi %instr($s0,' i13 ') > 0 color red
  351. X        ifi %instr($s0,'cma') == 0 color yellow
  352. X        ifi %instr($s0,'gfp') == 0 color lt_blue
  353. X        ifi %instr($s0,'jts') == 0 color lt_blue
  354. X        ifi %instr($s0,'UUCP') >= 0 color red
  355. X        ifi %instr($s0,'uu') >= 0 color red
  356. X        echo $s0
  357. X    }
  358. X    icolor $icolor
  359. X    send ''
  360. X
  361. SHAR_EOF
  362. $TOUCH -am 0507232990 'models/p.ep' &&
  363. chmod 0640 models/p.ep ||
  364. echo 'restore of models/p.ep failed'
  365. Wc_c="`wc -c < 'models/p.ep'`"
  366. test 1110 -eq "$Wc_c" ||
  367.     echo 'models/p.ep: original size 1110, current size' "$Wc_c"
  368. # ============= models/phone ==============
  369. echo 'x - extracting models/phone (Text)'
  370. sed 's/^X//' << 'SHAR_EOF' > 'models/phone' &&
  371. X#ECUPHONE
  372. X# when saving this file, ECU will preserve commented lines
  373. X#sco2:1(408)425-3502::2400:N:sosco uucp
  374. Xalphacm:1(714)821-9671::2400:N:alphacm rotary 1
  375. Xnavobs:1(202)653-0351::1200:N:Naval Observatory Time
  376. Xsco:1(408)426-9495::2400:N:SCO Tech Services (SOS)
  377. SHAR_EOF
  378. $TOUCH -am 0815215990 'models/phone' &&
  379. chmod 0644 models/phone ||
  380. echo 'restore of models/phone failed'
  381. Wc_c="`wc -c < 'models/phone'`"
  382. test 261 -eq "$Wc_c" ||
  383.     echo 'models/phone: original size 261, current size' "$Wc_c"
  384. # ============= models/phrases ==============
  385. echo 'x - extracting models/phrases (Text)'
  386. sed 's/^X//' << 'SHAR_EOF' > 'models/phrases' &&
  387. Xstty:stty intr ^C kill ^U erase ^H^r
  388. Xmail-csh:mail emory\!tridom\!n4hgf\!wht^r
  389. Xmail-sh:mail emory!tridom!n4hgf!wht^r
  390. SHAR_EOF
  391. $TOUCH -am 1103164089 'models/phrases' &&
  392. chmod 0604 models/phrases ||
  393. echo 'restore of models/phrases failed'
  394. Wc_c="`wc -c < 'models/phrases'`"
  395. test 117 -eq "$Wc_c" ||
  396.     echo 'models/phrases: original size 117, current size' "$Wc_c"
  397. # ============= models/ps.ep ==============
  398. echo 'x - extracting models/ps.ep (Text)'
  399. sed 's/^X//' << 'SHAR_EOF' > 'models/ps.ep' &&
  400. X#  CHK=0xDA50
  401. X#+------------------------------------------------------
  402. X# ps.eq - another colorful ps example
  403. X#-------------------------------------------------------
  404. X#+:EDITS:*/
  405. X#:07-11-1989-16:55-wht-get cmd became lgets
  406. X#:06-30-1989-18:53-wht-creation
  407. X
  408. X    mkvar $icolor; $icolor = %colors
  409. X    send %argv(0)+' '+%argv(1)+' '+%argv(2)
  410. X    lookfor '\n' 40
  411. X    $s0 = ''
  412. X    whilei 1==1
  413. X    {
  414. X        lgets $s0 60 60 '\n'
  415. X        color cyan
  416. X        ifi %instr($s0,'(getty)' >= 0 continue
  417. X        else ifi %instr($s0,'(tcsh)' >= 0 continue
  418. X        else ifi %instr($s0,'(csh)' >= 0 continue
  419. X        else ifi %instr($s0,'(sh)' >= 0 continue
  420. X        else ifi %instr($s0,'/etc/init' >= 0 continue
  421. X        else ifi %instr($s0,'% ') >= 0 break
  422. X        else ifi %instr($s0,'USER') == 0 color gray
  423. X        else ifi %instr($s0,' i29 ') > 0 color red
  424. X        else ifi %instr($s0,' i13 ') > 0 color green
  425. X        else ifi %instr($s0,'root') == 0 color yellow
  426. X        echo $s0
  427. X    }
  428. X    icolor $icolor
  429. X    send ''
  430. X
  431. SHAR_EOF
  432. $TOUCH -am 1222003590 'models/ps.ep' &&
  433. chmod 0644 models/ps.ep ||
  434. echo 'restore of models/ps.ep failed'
  435. Wc_c="`wc -c < 'models/ps.ep'`"
  436. test 895 -eq "$Wc_c" ||
  437.     echo 'models/ps.ep: original size 895, current size' "$Wc_c"
  438. # ============= models/put_ecu.ep ==============
  439. echo 'x - extracting models/put_ecu.ep (Text)'
  440. sed 's/^X//' << 'SHAR_EOF' > 'models/put_ecu.ep' &&
  441. X#  CHK=0x6289
  442. X#--------------------------------------------------------------
  443. X# put_ecu.ep - update remote copy of ecu sources
  444. X#--------------------------------------------------------------
  445. X#+:EDITS:*/
  446. X#:07-11-1989-16:55-wht-get cmd became lgets
  447. X#:06-28-1989-19:36-wht-use named variables
  448. X#:06-25-1989-14:28-wht-use rz_update
  449. X
  450. X    $s10 = %rname
  451. X    ifi %instr($s10,'tridom') == 0
  452. X        $s10 = 'tridom'
  453. X
  454. X    ifs $s10 == 'tridom'
  455. X    {
  456. X        $s0 = '/u3/sd/wht/src/ecu'
  457. X        $s1 = '/u1/src/ecu' 
  458. X        $s2 = '`ff \'*.c\' \'*.h\' Makefile \'*.ep\' \'.mi\' \'*.txt\' \'*.man\'` xsel386/*'
  459. X        $s3 = 'wht'
  460. X        goto CALL_SZ_UPDATE
  461. X    }
  462. X    else ifs $s10== 'ki4xo'
  463. X    {
  464. X        $s0 = '/user/wht/src/ecu'
  465. X        $s1 = '/u1/src/ecu' 
  466. X        $s2 = '{.,z}/{Makefile,*.{c,h}} `ff \'*.ep\' \'.mi\' \'*.man\'` xsel386/*'
  467. X        $s3 = 'wht'
  468. X        goto CALL_SZ_UPDATE
  469. X    }
  470. X    else ifs $s10== 'coke-jsm'
  471. X    {
  472. X        $i39=%colors
  473. X        color red; echo '\n\nHAVE YOU MADE A NO-SELECT VERSION???????\n\n'
  474. X        mkvar $s_rpwd(20)
  475. X        echo -n 'root password? ' ; $s_rpwd = %cgets
  476. X        icolor $i39
  477. X        $s0 = '/usr/wht/bin'
  478. X        $s1 = '/u1/src/ecu'
  479. X        $s2 = 'ecu'
  480. X        $s3 = 'wht'
  481. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  482. X        lookfor '% ' 40
  483. X        $s0 = '/usr/wht/bin'
  484. X        $s1 = '/usr/wht/bin'
  485. X        $s2 = 'ecusz ecurz ecusea'
  486. X        $s3 = 'wht'
  487. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  488. X        lookfor '% ' 40
  489. X        $s0 = '/usr/wht'
  490. X        $s1 = '/u1/src/ecu/doc'
  491. X        $s2 = '*.man'
  492. X        $s3 = 'wht'
  493. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  494. X        lookfor '% ' 40
  495. X        $s0 = '/usr/wht/.ecu'
  496. X        $s1 = '/u1/src/ecu/models'
  497. X        $s2 = '*'
  498. X        $s3 = 'wht'
  499. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  500. X        lookfor '% ' 40
  501. X        $s0 = '/usr/lib/ecu'
  502. X        $s1 = $s0
  503. X        $s2 = '*'
  504. X        $s3 = ''
  505. X        do 'su-csh' 'root' $s_rpwd
  506. X        do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  507. X        send -e 'chmod u+s /usr/lib/ecu/ecuungetty'
  508. X        send %chr(0x04)
  509. X        return
  510. X    }
  511. X    else echo 'not to '+$s10+' you don\'t'
  512. X
  513. X# $s0 = remote directory
  514. X# $s1 = local directory
  515. X# $s2 = file list
  516. X# $s3 = necessary username on remote system
  517. XCALL_SZ_UPDATE
  518. X    do 'sz_update' $s0  $s1 $s2 $s3 %argv(0)
  519. SHAR_EOF
  520. $TOUCH -am 0507232990 'models/put_ecu.ep' &&
  521. chmod 0644 models/put_ecu.ep ||
  522. echo 'restore of models/put_ecu.ep failed'
  523. Wc_c="`wc -c < 'models/put_ecu.ep'`"
  524. test 1963 -eq "$Wc_c" ||
  525.     echo 'models/put_ecu.ep: original size 1963, current size' "$Wc_c"
  526. # ============= models/root.ep ==============
  527. echo 'x - extracting models/root.ep (Text)'
  528. sed 's/^X//' << 'SHAR_EOF' > 'models/root.ep' &&
  529. X#  CHK=0x067D
  530. X#+----------------------------------------------
  531. X# su-root.ep
  532. X#-----------------------------------------------
  533. X#+:EDITS:*/
  534. X#:07-11-1989-16:55-wht-get cmd became lgets
  535. X#:06-28-1989-19:36-wht-use named variables
  536. X#:06-27-1989-17:02-wht-working
  537. X
  538. X    mkvar icsave;$icsave = %colors
  539. X    color lt_blue black
  540. X    echo -n 'remote root password? '
  541. X    color black black
  542. X    $s0 = %cgets
  543. X    icolor $icsave
  544. X    do 'su' 'root' $s0
  545. X    $s0 = ''        # forget password
  546. X    lookfor '% ' 100 # swallow prompt
  547. X    send 'source ~wht/.cshrc'
  548. SHAR_EOF
  549. $TOUCH -am 1222003590 'models/root.ep' &&
  550. chmod 0644 models/root.ep ||
  551. echo 'restore of models/root.ep failed'
  552. Wc_c="`wc -c < 'models/root.ep'`"
  553. test 503 -eq "$Wc_c" ||
  554.     echo 'models/root.ep: original size 503, current size' "$Wc_c"
  555. # ============= models/rz_update.ep ==============
  556. echo 'x - extracting models/rz_update.ep (Text)'
  557. sed 's/^X//' << 'SHAR_EOF' > 'models/rz_update.ep' &&
  558. X#  CHK=0x3514
  559. X#--------------------------------------------------------------
  560. X# rz_update.ep - update local directory
  561. X#
  562. X# parameters:
  563. X# %argv(1) = remote directory to copy from
  564. X# %argv(2) = local directory to copy to
  565. X# %argv(3) = file list to get
  566. X# %argv(4) = remote username needed, if any, else null
  567. X#            if %argv(4) not null, 'su_'+%argv(4)+".ep" must
  568. X#            exist to su to remote
  569. X# %argv(5)   name of superior procedure
  570. X#
  571. X#--------------------------------------------------------------
  572. X#+:EDITS:*/
  573. X#:07-11-1989-16:55-wht-get cmd became lgets
  574. X#:06-28-1989-19:36-wht-use named variables
  575. X#:06-25-1989-13:56-wht-new do command syntax
  576. X#:06-25-1989-12:33-wht-new if/while syntax
  577. X#:06-22-1989-13:30-wht-creation
  578. X
  579. X# variable usage
  580. X    mkvar $i_csave            # color settings at entry to procedure
  581. X    mkvar $i_rtnval            # return code
  582. X    mkvar $i_suflag            # true if su occurred
  583. X    mkvar $s_origdir(128)    # original working directory
  584. X    mkvar $s_rdir(128)        # remote directory we started with
  585. X    mkvar $s_ruser(16)        # remote username we started with before su
  586. X    mkvar $s_xtitle(64)        # title for xfer
  587. X
  588. X    $i_csave=%colors # get colors at entry
  589. X
  590. X    $s_xtitle = 'Connected to '+%rname
  591. X    ifs %argv(5) != ''
  592. X        $s_xtitle = $s_xtitle+' - procedure '+%argv(5)
  593. X
  594. X# check to make sure we are connected
  595. X    ifi %conn == 0
  596. X    {
  597. X        color red; echo 'not connected to anyone!'
  598. X        goto SORRY
  599. X    }
  600. X    color lt_blue;  echo 'Connected to '+%rname
  601. X
  602. X# save local current directory and change to target
  603. X    $s_origdir=%dir
  604. X    color brown
  605. X    ifs $s_origdir == %argv(2)
  606. X        echo -n 'local directory already '
  607. X    else 
  608. X    {
  609. X        cd %argv(2)
  610. X        echo -n 'local directory set to '
  611. X    }
  612. X    color yellow; echo %dir
  613. X
  614. X# make sure remote username ok
  615. X    ifs %argv(4) == '' goto REMOTE_CD # if any remote username
  616. X    do 'bsd_uname'            # get $s0=username
  617. X    ifi $i0 == 0 goto SORRY    # test failure
  618. X    $s_ruser = $s0            # save original remote username
  619. X    ifs $s0 != %argv(4)
  620. X    {                        # need to su
  621. X        color brown
  622. X        echo -n 'remote username '
  623. X        color yellow
  624. X        echo -n $s0
  625. X        color brown
  626. X        echo ' ... su to '+%argv(4)+' now'
  627. X        color gray
  628. X        do 'su_'+%argv(4)    # call proc, which calls su.ep
  629. X        lookfor '% ' 50        # su leaves prompt in buffer: swallow
  630. X        do 'bsd_uname'        # make sure we su'd
  631. X        ifi $i0 == 0 goto SORRY
  632. X        ifs $s0 != %argv(4)    # failed to su?
  633. X        {
  634. X            color red;echo 'su to '+%argv(4)+' failed'
  635. X            goto SORRY
  636. X        }
  637. X        $i_suflag = 1        # remember we su'd
  638. X    }    # now we are proper username on remote
  639. X
  640. X# establish proper remote working directory
  641. XREMOTE_CD
  642. X    color gray
  643. X    $s0 = 'pwd';do 'oneline'    # save old remote ...
  644. X    $s_rdir = $s0                # ... directory in $s_rdir
  645. X    ifs $s_rdir != %argv(1)        # if cd needed, do it
  646. X    {
  647. X        send 'cd '+%argv(1)        # remote cd
  648. X        lookfor -e '\n' 50        # echo command
  649. X        lookfor '% ' 50            # swallow prompt
  650. X        $s0 = 'pwd'
  651. X        do 'oneline'            # make sure we got there
  652. X        ifs $s0 != %argv(1)        # dir change failed
  653. X        {
  654. X            color red;echo 'remote cd failed'
  655. X            goto SORRY;
  656. X        }
  657. X    }
  658. X    color brown;  echo -n 'remote directory '
  659. X    color yellow; echo -n %argv(1)
  660. X    color brown;  echo    ' ... starting transfer now'
  661. X
  662. X# transfer files
  663. X    color lt_blue
  664. X    send 'sz -n -f '+%argv(3)
  665. X    lookfor -e '\n' 50    # echo remote command
  666. X    ifi $i0 == 0        # command failed?
  667. X    {
  668. X        color red; echo 'sz command failed or garbled echo'
  669. X        goto SORRY
  670. X    }
  671. X    color brown
  672. X    echo 'waiting for sz to start'
  673. X    nap 10
  674. X    color gray
  675. X#    $s5 = '**'+%chr(0x18)+'B'    # ZMODEM header
  676. X    lgets $s0 150 10 '\n'        # wait 15 secs for start
  677. X    ifi %instr($s0,'rz') < 0    # check for 'rz' startup from remote
  678. X    {
  679. X        color white;
  680. X        echo '\n'+$s0+'\n'
  681. X        color red
  682. X        echo 'sz protocol failure or trigger garbled'
  683. X        goto SORRY
  684. X    }
  685. X    icolor $i_csave                # restore colors at entry
  686. X    rz -l $s_xtitle
  687. X    ifi $i0 != 0    # whoops
  688. X    {
  689. X        color red; echo -n '\nTRANSFER FAILED ... '
  690. X        ifi $i0 == 0x100 echo 'interrupt'
  691. X        ifi $i0 != 0x100 echo 'termination status '+%itos($i0,04d)
  692. X        goto SORRY
  693. X    }
  694. X    lookfor '% ' 50                # swallow prompt
  695. X    goto RETURN
  696. X
  697. XSORRY # whoops
  698. X    color red;echo 'rz_update failed ... sorry'
  699. X    $i_rtnval = 1                # return error
  700. X
  701. XRETURN
  702. X    echo ''
  703. X    color brown;  echo -n 'remote user name '
  704. X    color yellow
  705. X    ifi $i_suflag != 0            # we su'd
  706. X    {
  707. X        send -n %chr(0x04)      # will force a new prompt from remote
  708. X        echo -n $s_ruser
  709. X        color brown;  echo ' restored (sent ^D to '+%argv(4)+' shell)'
  710. X        lookfor '% ' 50            # swallow prompt
  711. X    }
  712. X    else
  713. X        color brown;  echo 'unchanged'
  714. X
  715. X    ifs $s_rdir != %argv(1)        # if we did a remote cd
  716. X    {
  717. X        send 'cd '+$s_rdir        # restore original
  718. X        lookfor '\n'
  719. X        color brown;  echo -n 'remote working directory '
  720. X        color yellow; echo -n $s_rdir
  721. X        color brown;  echo    ' restored'
  722. X    }
  723. X    else
  724. X    {
  725. X        send ''                # spark a prompt
  726. X        color brown;  echo -n 'remote working directory '
  727. X        color yellow; echo -n $s_rdir
  728. X        color brown;  echo    ' unchanged'
  729. X    }
  730. X
  731. X    ifs $s_origdir != %dir    # restore original directory
  732. X    {
  733. X        cd $s_origdir
  734. X        color brown;  echo -n 'local working directory '
  735. X        color yellow; echo -n $s_origdir
  736. X        color brown;  echo    ' restored'
  737. X    }
  738. X
  739. X    icolor $i_csave        # restore colors at entry
  740. X    echo ''
  741. X    return $i_rtnval    # return selected error code (bomb procedure if error)
  742. SHAR_EOF
  743. $TOUCH -am 0507232990 'models/rz_update.ep' &&
  744. chmod 0644 models/rz_update.ep ||
  745. echo 'restore of models/rz_update.ep failed'
  746. Wc_c="`wc -c < 'models/rz_update.ep'`"
  747. test 4983 -eq "$Wc_c" ||
  748.     echo 'models/rz_update.ep: original size 4983, current size' "$Wc_c"
  749. # ============= models/scm.ep ==============
  750. echo 'x - extracting models/scm.ep (Text)'
  751. sed 's/^X//' << 'SHAR_EOF' > 'models/scm.ep' &&
  752. X#  CHK=0x01CA
  753. X#+------------------------------------------------------------
  754. X# scm.ep - goto scm and use wht .cshrc
  755. X#-------------------------------------------------------------
  756. X#+:EDITS:*/
  757. X#:07-11-1989-16:55-wht-get cmd became lgets
  758. X#:06-28-1989-19:36-wht-use named variables
  759. X#:06-26-1989-19:25-wht-working with su.ep - no longer secret
  760. X
  761. X    mkvar icsave; $icsave = %colors
  762. X    do 'su' 'scm' 'secret'
  763. X    lookfor '% ' 70        # swallow prompt left by su.ep
  764. X    color gray
  765. X    send 'source ~wht/.cshrc'
  766. X    lookfor -e '\n' 70
  767. X    ifs %argv(1) != '.'
  768. X    {
  769. X        lookfor '% ' 70        # swallow prompt
  770. X        send 'cd'
  771. X        lookfor -e '\n' 50    # send 'cd', swallow echo
  772. X    }
  773. X    icolor $icsave
  774. SHAR_EOF
  775. $TOUCH -am 1222003690 'models/scm.ep' &&
  776. chmod 0644 models/scm.ep ||
  777. echo 'restore of models/scm.ep failed'
  778. Wc_c="`wc -c < 'models/scm.ep'`"
  779. test 643 -eq "$Wc_c" ||
  780.     echo 'models/scm.ep: original size 643, current size' "$Wc_c"
  781. # ============= models/senddate.ep ==============
  782. echo 'x - extracting models/senddate.ep (Text)'
  783. sed 's/^X//' << 'SHAR_EOF' > 'models/senddate.ep' &&
  784. X#  CHK=0x067D
  785. X#+----------------------------------------------
  786. X# senddate.ep
  787. X#-----------------------------------------------
  788. X#+:EDITS:*/
  789. X#:07-11-1989-16:55-wht-get cmd became lgets
  790. X#:06-28-1989-19:36-wht-use named variables
  791. X#:06-27-1989-17:02-wht-working
  792. X
  793. X    mkvar icsave;$icsave = %colors
  794. X    color blue
  795. X    echo -n 'remote root password? '
  796. X    color black
  797. X    $s0 = %cgets
  798. X    icolor $icsave
  799. X    do 'su' 'root' $s0
  800. X    $s0 = ''        # forget password
  801. X    lookfor '% ' 50 # swallow prompt
  802. X    send 'date'
  803. X    lookfor -e '% ' 50
  804. X    system -l 'senddate'
  805. X    lookfor -e quiet 20
  806. X    send -n %chr(0x04)
  807. SHAR_EOF
  808. $TOUCH -am 0507232990 'models/senddate.ep' &&
  809. chmod 0644 models/senddate.ep ||
  810. echo 'restore of models/senddate.ep failed'
  811. Wc_c="`wc -c < 'models/senddate.ep'`"
  812. test 557 -eq "$Wc_c" ||
  813.     echo 'models/senddate.ep: original size 557, current size' "$Wc_c"
  814. # ============= models/sf_test.ep ==============
  815. echo 'x - extracting models/sf_test.ep (Text)'
  816. sed 's/^X//' << 'SHAR_EOF' > 'models/sf_test.ep' &&
  817. X#--------------------------------------------------------------------
  818. X# sf_test.ep - test various string functions
  819. X#
  820. X#Sample execution:
  821. X#% ecu -p sf_test
  822. X#
  823. X# ecu x3.00.05.00-386u by wht@n4hgf (pid 5890)
  824. X# 
  825. X# procedure is sf_test run on Mon 08-13-1990 at 15:39:17 (19:39 UTC)
  826. X# username is "wht"
  827. X# current directory is "/u1/src/ecu/models"
  828. X# 
  829. X# %instr('abcdefabcdefghi','def') = 3
  830. X# %rinstr('abcdefabcdefghi','def') = 9
  831. X# 
  832. X# %basename('/u1/src/src/foo.c','.c') = "/u1/src/src/foo"
  833. X# %basename('foo.c','.c') = "foo"
  834. X# %basename('foo.c','.x') = "foo.c"
  835. X# 
  836. X# %dirpart('/u1/src/src/foo.c') = "/u1/src/src"
  837. X# %dirpart('foo.c') = "foo.c"
  838. X# %dirpart('/usr') = ""
  839. X# 
  840. X# %filepart('/u1/src/src/foo.c') = "foo.c"
  841. X# %filepart('foo.c') = "foo.c"
  842. X# 
  843. X# %envvar('HZ') = "100"
  844. X# %envvar('HOME') = "/u9/wht"
  845. X# %envvar('FOOBARTZHUMMER') = ""
  846. X# 
  847. X# errno 1 = "Not owner"
  848. X# 5678 seconds is "01:34:38"
  849. X# mode 105755 is "-rwsr-xr-t"
  850. X# [procedure finished]
  851. X# 
  852. X# 
  853. X# [no line attached by initial procedure]
  854. X# [press ESC to exit or SPACE for setup menu]
  855. X# 
  856. X#--------------------------------------------------------------------
  857. X
  858. X    echo ''
  859. X    echo -n 'procedure is '+%argv(0)+' run on '+%day+' '+%date
  860. X    echo ' at '+%times+' ('+%timez+' UTC)'
  861. X    echo 'username is "'+%logname+'"'
  862. X    echo 'current directory is "'+%dir+'"'
  863. X
  864. X    echo ''
  865. X    echo -n '%instr(\'abcdefabcdefghi\',\'def\') = '
  866. X    echo %itos(%instr('abcdefabcdefghi','def'))
  867. X
  868. X    echo -n '%rinstr(\'abcdefabcdefghi\',\'def\') = '
  869. X    echo %itos(%rinstr('abcdefabcdefghi','def'))
  870. X
  871. X    echo ''
  872. X    echo -n '%basename(\'/u1/src/src/foo.c\',\'.c\') = '
  873. X    echo '"'+%basename('/u1/src/src/foo.c','.c')+'"'
  874. X
  875. X    echo -n '%basename(\'foo.c\',\'.c\') = '
  876. X    echo '"'+%basename('foo.c','.c')+'"'
  877. X
  878. X    echo -n '%basename(\'foo.c\',\'.x\') = '
  879. X    echo '"'+%basename('foo.c','.x')+'"'
  880. X
  881. X    echo ''
  882. X    echo -n '%dirpart(\'/u1/src/src/foo.c\') = '
  883. X    echo '"'+%dirpart('/u1/src/src/foo.c')+'"'
  884. X
  885. X    echo -n '%dirpart(\'foo.c\') = '
  886. X    echo '"'+%dirpart('foo.c')+'"'
  887. X
  888. X    echo -n '%dirpart(\'/usr\') = '
  889. X    echo '"'+%dirpart('/usr')+'"'
  890. X
  891. X    echo ''
  892. X    echo -n '%filepart(\'/u1/src/src/foo.c\') = '
  893. X    echo '"'+%filepart('/u1/src/src/foo.c')+'"'
  894. X
  895. X    echo -n '%filepart(\'foo.c\') = '
  896. X    echo '"'+%filepart('/u1/src/src/foo.c')+'"'
  897. X
  898. X    echo ''
  899. X    echo '%envvar(\'HZ\') = "'+%envvar('HZ')+'"'
  900. X    echo '%envvar(\'HOME\') = "'+%envvar('HOME')+'"'
  901. X    echo '%envvar(\'FOOBARTZHUMMER\') = "'+%envvar('FOOBARTZHUMMER')+'"'
  902. X
  903. X    echo ''
  904. X    echo 'errno 1 = "'+%errstr(1)+'"'
  905. X    echo '5678 seconds is "'+%etime(5678)+'"'
  906. X    echo 'mode 105755 is "'+%fmodestr(0105755)+'"'
  907. SHAR_EOF
  908. $TOUCH -am 0813170590 'models/sf_test.ep' &&
  909. chmod 0644 models/sf_test.ep ||
  910. echo 'restore of models/sf_test.ep failed'
  911. Wc_c="`wc -c < 'models/sf_test.ep'`"
  912. test 2489 -eq "$Wc_c" ||
  913.     echo 'models/sf_test.ep: original size 2489, current size' "$Wc_c"
  914. # ============= models/su.ep ==============
  915. echo 'x - extracting models/su.ep (Text)'
  916. sed 's/^X//' << 'SHAR_EOF' > 'models/su.ep' &&
  917. X#  CHK=0x120D
  918. X#+---------------------------------------------------------
  919. X# su.ep - switch user at remote
  920. X# wht%n4hgf@gatech.edu
  921. X#
  922. X# do su 'username' 'password' ['.']
  923. X#
  924. X# expects new user to be running csh
  925. X#----------------------------------------------------------
  926. X#+:EDITS:*/
  927. X#:07-11-1989-16:55-wht-get cmd became lgets
  928. X#:06-28-1989-19:36-wht-use named variables
  929. X#:06-27-1989-12:43-wht-"get prompt" message was wrong
  930. X#:06-25-1989-13:56-wht-new do command syntax
  931. X#:06-25-1989-12:33-wht-new if/while syntax
  932. X#:06-16-1989-18:12-wht-creation
  933. X
  934. X    mkvar icsave; $icsave = %colors
  935. X
  936. X    color gray
  937. X    send 'su '+%argv(1)
  938. X    lookfor -e 'word:' 70
  939. X    ifi $i0 == 0
  940. X    {
  941. X        color red;echo 'su: failed to get password prompt'
  942. X        icolor $icsave; return 1
  943. X    }
  944. X    send %argv(2); lookfor '\n' 50    # send password
  945. X    echo ''
  946. X    lgets $s0 70 5 '\n'
  947. X    ifi %instr($s0,'Sorry') >= 0
  948. X    {
  949. X        color red;echo 'su: remote said "Sorry"'
  950. X        icolor $icsave; return 1
  951. X    }
  952. X    nap 5                        # wait .5 sec
  953. X    send 'set prompt="% "'        # set '% ' as prompt
  954. X    lookfor '\n' 20                # swallow echo of set command
  955. X    lookfor '% ' 60                # look for new prompt
  956. X    ifi $i0 == 0
  957. X    {
  958. X        color lt_red
  959. X        echo 'timeout on prompt ... system may be slow ... waiting 5 more secs'
  960. X        color gray
  961. X        lookfor '% ' 50                # look for new prompt
  962. X    }
  963. X    ifi $i0 == 0
  964. X    {
  965. X        color red;echo 'su: failed to "get prompt" echo'
  966. X        icolor $icsave; return 2
  967. X    }
  968. X    ifs %argv(3) == '.'
  969. X        send 'source ~wht/.cshrc'
  970. X    else
  971. X        send ''; lookfor '\n' 50    # kick off another prompt
  972. X    icolor $icsave
  973. SHAR_EOF
  974. $TOUCH -am 0507233390 'models/su.ep' &&
  975. chmod 0644 models/su.ep ||
  976. echo 'restore of models/su.ep failed'
  977. Wc_c="`wc -c < 'models/su.ep'`"
  978. test 1465 -eq "$Wc_c" ||
  979.     echo 'models/su.ep: original size 1465, current size' "$Wc_c"
  980. # ============= models/sysname.ep ==============
  981. echo 'x - extracting models/sysname.ep (Text)'
  982. sed 's/^X//' << 'SHAR_EOF' > 'models/sysname.ep' &&
  983. X#-----------------------------------------------------------
  984. X# sysname.ep - procedure to call UNIX-like system 'sysname'
  985. X#
  986. X# CONFIDENTIAL - This function should be chmod 0600 because
  987. X# it contains a password which you probably don't want to be
  988. X# common knowledge.
  989. X#
  990. X# This procedure calls 'unixlogin.ep' to do the hard work.
  991. X#-----------------------------------------------------------
  992. X
  993. X    mkvar $s_pwd(20)    # local variable preserves password
  994. X    $s_pwd = 'password' # security by disappearing when the
  995. X                        # procedure terminates
  996. X
  997. X#   also, by keeping the password text off the following line,
  998. X#   the password will not be displayed if you abort (interrupt)
  999. X#   the procedure
  1000. X
  1001. X    do 'unixlogin' %argv(0) 'username' $s_pwd 'ansi-or-whatever'
  1002. SHAR_EOF
  1003. $TOUCH -am 0815180890 'models/sysname.ep' &&
  1004. chmod 0640 models/sysname.ep ||
  1005. echo 'restore of models/sysname.ep failed'
  1006. Wc_c="`wc -c < 'models/sysname.ep'`"
  1007. test 766 -eq "$Wc_c" ||
  1008.     echo 'models/sysname.ep: original size 766, current size' "$Wc_c"
  1009. # ============= models/sz_update.ep ==============
  1010. echo 'x - extracting models/sz_update.ep (Text)'
  1011. sed 's/^X//' << 'SHAR_EOF' > 'models/sz_update.ep' &&
  1012. X#  CHK=0x4068
  1013. X#--------------------------------------------------------------
  1014. X# sz_update.ep - update local directory
  1015. X#
  1016. X# parameters:
  1017. X# %argv(1) = remote directory to copy to
  1018. X# %argv(2) = local directory to copy from
  1019. X# %argv(3) = file list to send
  1020. X# %argv(4) = remote username needed, if any, else null
  1021. X#            if %argv(4) not null, 'su_'+%argv(4)+".ep" must
  1022. X#            exist to su to remote
  1023. X# %argv(5)   name of superior procedure
  1024. X#
  1025. X#--------------------------------------------------------------
  1026. X#+:EDITS:*/
  1027. X#:07-11-1989-16:55-wht-get cmd became lgets
  1028. X#:06-28-1989-19:36-wht-use named variables
  1029. X#:06-25-1989-13:56-wht-new do command syntax
  1030. X#:06-25-1989-12:33-wht-new if/while syntax
  1031. X#:06-22-1989-13:30-wht-creation
  1032. X
  1033. X# variable usage
  1034. X    mkvar $i_csave            # color settings at entry to procedure
  1035. X    mkvar $i_suflag            # true if su occurred
  1036. X    mkvar $i_rtnflag        # return code
  1037. X    mkvar $s_origdir(128)    # original working directory
  1038. X    mkvar $s_ruser(16)        # remote username we started with before su
  1039. X    mkvar $s_rdir(128)        # remote directory we started with
  1040. X    mkvar $s_xtitle(64)        # title for xfer
  1041. X
  1042. X    $i_csave=%colors # get colors at entry
  1043. X
  1044. X    $s_xtitle = 'Connected to '+%rname
  1045. X    ifs %argv(5) != ''
  1046. X        $s_xtitle = $s_xtitle+' - procedure '+%argv(5)
  1047. X
  1048. X# check to make sure we are connected
  1049. X    ifi %conn == 0
  1050. X    {
  1051. X        color red; echo 'not connected to anyone!'
  1052. X        goto SORRY
  1053. X    }
  1054. X    color lt_blue;  echo 'Connected to '+%rname
  1055. X
  1056. X# save local current directory and change to target
  1057. X    $s_origdir=%dir
  1058. X    color brown
  1059. X    ifs $s_origdir == %argv(2)
  1060. X        echo -n 'local directory already '
  1061. X    else 
  1062. X    {
  1063. X        cd %argv(2)
  1064. X        echo -n 'local directory set to '
  1065. X    }
  1066. X    color yellow; echo %dir
  1067. X
  1068. X# make sure remote username ok
  1069. X    ifs %argv(4) == '' goto REMOTE_CD # if any remote username
  1070. X    do 'bsd_uname'            # get $s0=username
  1071. X    ifi $i0 == 0 goto SORRY    # test failure
  1072. X    $s_ruser = $s0            # save original remote username
  1073. X    ifs $s0 != %argv(4)
  1074. X    {                        # need to su
  1075. X        color brown
  1076. X        echo -n 'remote username '
  1077. X        color yellow
  1078. X        echo -n $s0
  1079. X        color brown
  1080. X        echo ' ... su to '+%argv(4)+' now'
  1081. X        color gray
  1082. X        do 'su_'+%argv(4)    # call proc, which calls su.ep
  1083. X        lookfor '% ' 50        # su leaves prompt in buffer: swallow
  1084. X        do 'bsd_uname'        # make sure we su'd
  1085. X        ifi $i0 == 0 goto SORRY
  1086. X        ifs $s0 != %argv(4)    # failed to su?
  1087. X        {
  1088. X            color red;echo 'su to '+%argv(4)+' failed'
  1089. X            goto SORRY
  1090. X        }
  1091. X        $i_suflag = 1        #remember we su'd
  1092. X    }    # now we are proper username on remote
  1093. X
  1094. X# establish proper remote working directory
  1095. XREMOTE_CD
  1096. X    color gray
  1097. X    $s0 = 'pwd';do 'oneline'    # save old remote ...
  1098. X    $s_rdir = $s0                # ... directory in $s_rdir
  1099. X    ifs $s_rdir != %argv(1)        # if cd needed, do it
  1100. X    {
  1101. X        send 'cd '+%argv(1)        # remote cd
  1102. X        lookfor -e '\n' 50        # echo command
  1103. X        lookfor '% ' 50            # swallow prompt
  1104. X        $s0 = 'pwd'
  1105. X        do 'oneline'            # make sure we got there
  1106. X        ifs $s0 != %argv(1)        # dir change failed
  1107. X        {
  1108. X            color red;echo 'remote cd failed'
  1109. X            goto SORRY;
  1110. X        }
  1111. X    }
  1112. X    color brown;  echo -n 'remote directory '
  1113. X    color yellow; echo    %argv(1)
  1114. X
  1115. X# transfer files
  1116. X    color lt_blue
  1117. X    echo 'sz -n -f '+%argv(3)
  1118. X    icolor $i_csave                # restore colors at entry
  1119. X    sz -nfl $s_xtitle %argv(3)
  1120. X    ifi $i0 != 0                # whoops
  1121. X    {
  1122. X        color red; echo -n '\nTRANSFER FAILED ... '
  1123. X        ifi $i0 == 0x100 echo 'interrupt'
  1124. X        ifi $i0 != 0x100 echo 'termination status '+%itos($i0,04d)
  1125. X        goto SORRY
  1126. X    }
  1127. X    lookfor '% ' 50                # swallow prompt
  1128. X    goto RETURN
  1129. X
  1130. XSORRY # whoops
  1131. X    color red;echo 'sz_update failed ... sorry'
  1132. X    $i_rtnflag = 1    # return error
  1133. X
  1134. XRETURN
  1135. X    echo ''
  1136. X    color brown;  echo -n 'remote user name '
  1137. X    color yellow
  1138. X    ifi $i_suflag != 0            # we su'd
  1139. X    {
  1140. X        send -n %chr(0x04)        # will force a new prompt from remote
  1141. X        echo -n $s_ruser
  1142. X        color brown;  echo ' restored (sent ^D to '+%argv(4)+' shell)'
  1143. X        lookfor '% ' 50            # swallow prompt
  1144. X    }
  1145. X    else
  1146. X        color brown;  echo 'unchanged'
  1147. X
  1148. X    ifs $s_rdir != %argv(1)        # if we did a remote cd
  1149. X    {
  1150. X        send 'cd '+$s_rdir        # restore original
  1151. X        lookfor '\n'
  1152. X        color brown;  echo -n 'remote working directory '
  1153. X        color yellow; echo -n $s_rdir
  1154. X        color brown;  echo    ' restored'
  1155. X    }
  1156. X    else
  1157. X    {
  1158. X        send ''    # spark a prompt
  1159. X        color brown;  echo -n 'remote working directory '
  1160. X        color yellow; echo -n $s_rdir
  1161. X        color brown;  echo    ' unchanged'
  1162. X    }
  1163. X
  1164. X    color brown;  echo -n 'local working directory '
  1165. X    color yellow; echo -n $s_origdir
  1166. X    color brown
  1167. X    ifs $s_origdir != %dir    # restore original directory
  1168. X    {
  1169. X        cd $s_origdir
  1170. X        echo    ' restored'
  1171. X    }
  1172. X    else
  1173. X        echo ' unchanged'
  1174. X
  1175. X    icolor $i_csave        # restore colors at entry
  1176. X    echo ''
  1177. X    return $i_rtnflag    # return selected error code (bomb procedure if error)
  1178. SHAR_EOF
  1179. $TOUCH -am 0507232990 'models/sz_update.ep' &&
  1180. chmod 0644 models/sz_update.ep ||
  1181. echo 'restore of models/sz_update.ep failed'
  1182. Wc_c="`wc -c < 'models/sz_update.ep'`"
  1183. test 4479 -eq "$Wc_c" ||
  1184.     echo 'models/sz_update.ep: original size 4479, current size' "$Wc_c"
  1185. # ============= models/szall.ep ==============
  1186. echo 'x - extracting models/szall.ep (Text)'
  1187. sed 's/^X//' << 'SHAR_EOF' > 'models/szall.ep' &&
  1188. X#  CHK=0xE67C
  1189. X
  1190. X    do 'put_mpad1'
  1191. X    lookfor '% ' 40
  1192. X    do 'put_kdir12'
  1193. X    lookfor '% ' 40
  1194. X    do 'put_sim'
  1195. X    lookfor '% ' 40
  1196. X    do 'put_ecu'
  1197. SHAR_EOF
  1198. $TOUCH -am 0507232990 'models/szall.ep' &&
  1199. chmod 0644 models/szall.ep ||
  1200. echo 'restore of models/szall.ep failed'
  1201. Wc_c="`wc -c < 'models/szall.ep'`"
  1202. test 127 -eq "$Wc_c" ||
  1203.     echo 'models/szall.ep: original size 127, current size' "$Wc_c"
  1204. # ============= models/tty1a.mi ==============
  1205. echo 'x - extracting models/tty1a.mi (Text)'
  1206. sed 's/^X//' << 'SHAR_EOF' > 'models/tty1a.mi' &&
  1207. X#  CHK=0x10FF
  1208. X#+-----------------------------------------------------------------
  1209. X#  tty1a.mi - Microcom AX/9624c
  1210. X#  Copyright 1989 Warren H. Tucker, III. All Rights Reserved
  1211. X#------------------------------------------------------------------
  1212. X#+:EDITS:*/
  1213. X#:11-03-1989-16:21-wht------ unet2 -----
  1214. X#:07-02-1989-20:51-wht-beef up init
  1215. X#:06-17-1989-22:02-wht-creation
  1216. X
  1217. Xinit_>2400:atq0e1v1x4s0=0s2=43s7=30\q1\x1\n3
  1218. Xinit_default:atq0e1v1x4s0=0s2=43s7=30\q0\x0\n0
  1219. Xdial_default:atdt
  1220. Xautoanswer:atq1s0=1
  1221. SHAR_EOF
  1222. $TOUCH -am 1103162189 'models/tty1a.mi' &&
  1223. chmod 0644 models/tty1a.mi ||
  1224. echo 'restore of models/tty1a.mi failed'
  1225. Wc_c="`wc -c < 'models/tty1a.mi'`"
  1226. test 495 -eq "$Wc_c" ||
  1227.     echo 'models/tty1a.mi: original size 495, current size' "$Wc_c"
  1228. # ============= models/tty2d.mi ==============
  1229. echo 'x - extracting models/tty2d.mi (Text)'
  1230. sed 's/^X//' << 'SHAR_EOF' > 'models/tty2d.mi' &&
  1231. X#  CHK=0xFA63
  1232. X#+-----------------------------------------------------------------
  1233. X#  tty2d.mi - USR Courier 2400
  1234. X#  Copyright 1989 Warren H. Tucker, III. All Rights Reserved
  1235. X#------------------------------------------------------------------
  1236. X#+:EDITS:*/
  1237. X#:11-03-1989-16:21-wht------ unet2 -----
  1238. X#:07-02-1989-20:51-wht-beef up init
  1239. X#:06-17-1989-22:02-wht-creation
  1240. X
  1241. Xinit_default:atq0e1v1x4s0=0s2=43s7=30s11=47
  1242. Xdial_default:atdt
  1243. Xautoanswer:atq1s0=1
  1244. SHAR_EOF
  1245. $TOUCH -am 1103162189 'models/tty2d.mi' &&
  1246. chmod 0644 models/tty2d.mi ||
  1247. echo 'restore of models/tty2d.mi failed'
  1248. Wc_c="`wc -c < 'models/tty2d.mi'`"
  1249. test 446 -eq "$Wc_c" ||
  1250.     echo 'models/tty2d.mi: original size 446, current size' "$Wc_c"
  1251. # ============= models/unixlogin.ep ==============
  1252. echo 'x - extracting models/unixlogin.ep (Text)'
  1253. sed 's/^X//' << 'SHAR_EOF' > 'models/unixlogin.ep' &&
  1254. X#  CHK=0xE6DC
  1255. X#+-----------------------------------------------------------------
  1256. X#  unixlogin.ep - ecu UNIX login procedure
  1257. X#  Copyright 1989 Warren H. Tucker, III. All Rights Reserved
  1258. X#
  1259. X# %argv(1) = remote name
  1260. X# %argv(2) = user name
  1261. X# %argv(3) = password
  1262. X# %argv(4) = term type
  1263. X# %argv(5) = optional number of breaks needed
  1264. X#+-----------------------------------------------------------------
  1265. X#+:EDITS:
  1266. X#:07-12-1990-14:05-wht@n4hgf-use expresp
  1267. X#:07-11-1989-16:55-wht-get cmd became lgets
  1268. X#:07-09-1989-23:50-wht-add breaks
  1269. X#:06-28-1989-19:36-wht-use named variables
  1270. X#:06-25-1989-13:56-wht-new do command syntax
  1271. X#:06-25-1989-12:33-wht-new if/while syntax
  1272. X#:06-23-1989-19:46-wht-improved hayes dialer reduces need to report dial fail
  1273. X#:06-19-1989-22:50-wht-use while and if statements
  1274. X#:06-14-1989-15:58-wht-add login capability when already connected
  1275. X#:06-11-1989-23:37-wht-creation
  1276. X
  1277. X    mkvar $i_csave,$i_ltimeout,$i_retries
  1278. X    mkvar $s_2048(2048) # handle bigger login big motd
  1279. X
  1280. X    $i_csave = %colors
  1281. X    $i_ltimeout = 30 # 3 seconds wait for first login prompt
  1282. X    $i_retries=3
  1283. X
  1284. X    color red;    echo -n '\nauto-logon to '
  1285. X    color yellow; echo -n %argv(1)
  1286. X    color red;    echo    ' on '+%date+' at '+%time+'\n'
  1287. X
  1288. X    ifi %argc < 5    # not enough args
  1289. X    {
  1290. X        color red
  1291. X        echo %argv(0)+' needs 5 arguments (got '+%itos(%argc)+')'
  1292. X        goto SORRY
  1293. X    }
  1294. X    mkvar $i_breaks
  1295. X    ifi %argc > 5 $i_breaks = %stoi(%argv(5))
  1296. X
  1297. X    ifi %conn == 0 goto DIAL
  1298. X
  1299. X    ifs %rname == %argv(1)
  1300. X    {
  1301. X        color brown;  echo -n 'already connected to '
  1302. X        color yellow; echo    %rname
  1303. X        send ''
  1304. X        goto SEND_BREAKS
  1305. X    }
  1306. X
  1307. XHANGUP
  1308. X    ifi %conn <> 0 echo 'hanging up on '+%rname; hangup
  1309. X
  1310. XDIAL
  1311. X    color green
  1312. X    dial %argv(1); set $i1=$i0 #save dial result in $i1
  1313. X    ifi $i1 == 2 color red; echo 'interrupted'; goto SORRY
  1314. X    ifi $i1 != 0 goto SORRY
  1315. X
  1316. X# send breaks?
  1317. XSEND_BREAKS
  1318. X    ifi $i_breaks > 0
  1319. X    {
  1320. X        color blue; echo 'sending up to '+%itos($i_breaks)+' break(s) to remote'
  1321. X        nap 30
  1322. X        whilei $i_breaks > 0
  1323. X        {
  1324. X            color magenta; echo 'BREAK'
  1325. X            lbreak
  1326. X            expresp '~t[8]gin:'
  1327. X            ifi $i0 == 0
  1328. X                break;
  1329. X            nap 30
  1330. X            $i_breaks = $i_breaks - 1
  1331. X        }
  1332. X        flush
  1333. X    }
  1334. X
  1335. X# get login prompt from remote UNIX system: "login: "
  1336. XGET_LOGIN_PROMPT
  1337. X    $i_retries = 3
  1338. XGET_LOGIN_PROMPT_RETRY
  1339. X    ifi $i_retries <= 0
  1340. X    {
  1341. X        color red; echo '\ncannot seem to get in with these credentials'
  1342. X        goto SORRY
  1343. X    }
  1344. X    color blue; echo 'looking for login prompt'
  1345. X    color white
  1346. X    expresp -v '~t[8]gin:--~t[5]gin:--gin:--gin:'
  1347. X    ifi $i0 > 0
  1348. X    {
  1349. X        color red; echo '\nfailed to get login prompt'
  1350. X        goto SORRY
  1351. X    }
  1352. X    icolor $i_csave
  1353. X
  1354. X# give username to remote
  1355. XSEND_USERNAME
  1356. X    nap 3 # system not always ready when it says
  1357. X    send %argv(2)
  1358. X
  1359. X# get password prompt: "Password:" 
  1360. XGET_PASSWORD_PROMPT
  1361. X    color white
  1362. X    lookfor -e 'word:' 50
  1363. X    ifi $i0 != 1        # did not find 'Password: '
  1364. X    {
  1365. X        send ''
  1366. X        gotob GET_LOGIN_PROMPT_RETRY
  1367. X    }
  1368. X
  1369. X# send the password
  1370. X    nap 3 # system not always ready when it says
  1371. X    send %argv(3)
  1372. X    icolor $i_csave
  1373. X
  1374. X# get term type prompt "TERM = (ansi) "
  1375. X# also handle incorect login retry and 'Sorry' hangup indication
  1376. XGET_TERMTYPE_PROMPT
  1377. X    ifs %argv(4) == ''    # if no term type, don't wait for prompt
  1378. X    {
  1379. X        $i0 = 0            # return good status
  1380. X        goto SETCOLOR_AND_RETURN_STATUS
  1381. X    }
  1382. X    lgets -re $s_2048 100 50 ') '
  1383. X    ifi %instr($s_2048,'Sorry') > 0 hangup;goto SORRY
  1384. X    ifi %instr($s_2048,'incorrect') > 0        # exhausted retry?
  1385. X    {
  1386. X        set $i_retries=$i_retries-1
  1387. X        ifi $i_retries > 0 goto SEND_USERNAME
  1388. X        goto SORRY
  1389. X    }
  1390. X# send terminal type
  1391. X    ifi %instr($s_2048,'TERM') < 0
  1392. X        lookfor -e ') ' 30
  1393. X    send %argv(4)
  1394. X    lookfor -e '\n' 50
  1395. X    set $i0=0
  1396. X    goto SETCOLOR_AND_RETURN_STATUS
  1397. X
  1398. X# procedure failed
  1399. XSORRY
  1400. X    set $i0=1
  1401. X
  1402. XSETCOLOR_AND_RETURN_STATUS
  1403. X    icolor $i_csave
  1404. X    ifi $i0 == 0 ifi %conn !=0 prompt %rname+' >'
  1405. X    return $i0
  1406. X
  1407. X# vi:set tabstop=4 shiftwidth=4:
  1408. SHAR_EOF
  1409. $TOUCH -am 0712142290 'models/unixlogin.ep' &&
  1410. chmod 0640 models/unixlogin.ep ||
  1411. echo 'restore of models/unixlogin.ep failed'
  1412. Wc_c="`wc -c < 'models/unixlogin.ep'`"
  1413. test 3689 -eq "$Wc_c" ||
  1414.     echo 'models/unixlogin.ep: original size 3689, current size' "$Wc_c"
  1415. # ============= zgcc ==============
  1416. echo 'x - extracting zgcc (Text)'
  1417. sed 's/^X//' << 'SHAR_EOF' > 'zgcc' &&
  1418. X#!/bin/csh
  1419. X#zgcc -- build prototyping "LINT_ARGS"
  1420. Xecho C sources in $1';' result file $2
  1421. Xunset noclobber
  1422. Xrm -f zg.t
  1423. Xif (-e /unix)
  1424. X    echo 'building old-style prototypes for XENIX compiler compatibility'
  1425. X    echo 'unnamed struct/union as parameter warning probably about FILE :-('
  1426. Xendif
  1427. X# -dos switch is used since MSC5 pass 1 hangs with -Zg per SCO
  1428. X# since at least 5/89
  1429. Xforeach i(`cat $1`)
  1430. Xif (-e /unix)
  1431. X    cc -dos -DBUILDING_LINT_ARGS -Zg $argv[3-] $i | mkoldproto > zg1.t
  1432. Xelse
  1433. X    cc -DBUILDING_LINT_ARGS -Zg $argv[3-] $i > zg1.t
  1434. Xendif
  1435. Xsort zg1.t > zg2.t
  1436. Xecho '/*' $i '*/' >> zg.t
  1437. Xcat zg2.t >> zg.t
  1438. Xend
  1439. Xafterlint zg.t $2
  1440. Xrm -f zg.t zg?.t
  1441. Xecho Output in $2
  1442. SHAR_EOF
  1443. $TOUCH -am 1128184090 'zgcc' &&
  1444. chmod 0755 zgcc ||
  1445. echo 'restore of zgcc failed'
  1446. Wc_c="`wc -c < 'zgcc'`"
  1447. test 649 -eq "$Wc_c" ||
  1448.     echo 'zgcc: original size 649, current size' "$Wc_c"
  1449. # ============= mkoldproto.l ==============
  1450. echo 'x - extracting mkoldproto.l (Text)'
  1451. sed 's/^X//' << 'SHAR_EOF' > 'mkoldproto.l' &&
  1452. X/* CHK=0x5793 */
  1453. X%{
  1454. Xchar *rev = "1.00";
  1455. X/*+-------------------------------------------------------------------------
  1456. X    mkoldproto.c.{l,c} - make "old" style prototypes from "new" kind
  1457. X
  1458. Xcc -Zg source.c | mkproto > lint_args.h
  1459. X
  1460. Xtakes prototypes of the style
  1461. Xvoid change_report(char *original);
  1462. Xand emits
  1463. Xvoid change_report(char *);
  1464. XThe UNIX V compiler makes the new kind, accepts the old and new kind,
  1465. Xbut there are a lot of compilers which don't like the new kind.
  1466. X
  1467. XWarning, this program will make mush out of "old" style prototypes
  1468. Xfed to it.
  1469. X--------------------------------------------------------------------------*/
  1470. X/*+:EDITS:*/
  1471. X/*:11-27-1989-18:31-wht-creation */
  1472. X
  1473. Xint verbose = 0;
  1474. X
  1475. X/*+-------------------------------------------------------------------------
  1476. X    change_report(original)
  1477. X--------------------------------------------------------------------------*/
  1478. Xvoid
  1479. Xchange_report(original)
  1480. Xchar *original;
  1481. X{
  1482. X    fputs("fixing: ",stderr);
  1483. X    while(*original)
  1484. X    {
  1485. X        if((*original >= ' ') && (*original <= '~'))
  1486. X            fputc(*original,stderr);
  1487. X        else
  1488. X            fprintf(stderr,"<%02x>",*original);
  1489. X        original++;
  1490. X    }
  1491. X    fputs("\n",stderr);
  1492. X}    /* end of change_report */
  1493. X
  1494. X
  1495. X/*+-------------------------------------------------------------------------
  1496. X    main(argc,argv,envp)
  1497. X--------------------------------------------------------------------------*/
  1498. Xmain(argc,argv,envp)
  1499. Xint argc;
  1500. Xchar **argv;
  1501. Xchar **envp;
  1502. X{
  1503. Xregister int itmp;
  1504. Xregister int iargv;
  1505. Xint fileiargv = 0;
  1506. X
  1507. X    if(argc > 1)
  1508. X    {
  1509. X        for(iargv = 1; iargv < argc; iargv++)
  1510. X        {
  1511. X            if(argv[iargv][0] == '-')
  1512. X            {
  1513. X                switch(itmp = (argv[iargv][1]))
  1514. X                {
  1515. X                    case 'v':
  1516. X                        verbose = 1;
  1517. X                        break;
  1518. X                    default:
  1519. X                        break;
  1520. X                }
  1521. X            }
  1522. X            else
  1523. X            {
  1524. X                if(yyin != stdin)
  1525. X                {
  1526. X                    fprintf(stderr,"only 1 filename, please\n");
  1527. X                    exit(1);
  1528. X                }
  1529. X                if( (yyin = fopen(argv[iargv],"r")) == NULL)
  1530. X                {
  1531. X                    perror(argv[iargv]);
  1532. X                    exit(1);
  1533. X                }
  1534. X                fileiargv = iargv;
  1535. X            }
  1536. X        }
  1537. X    }
  1538. X
  1539. X    if(verbose && fileiargv)
  1540. X        fprintf(stderr,"%s:\n",argv[fileiargv]);
  1541. X
  1542. X    yylex();
  1543. X
  1544. X    exit(0);
  1545. X}    /* end of main */
  1546. X
  1547. X/* vi: set tabstop=4 shiftwidth=4: */
  1548. X%}
  1549. XW            [ \t]
  1550. XSTRING        \"([^"\n]|\\\")*\"
  1551. XOPCHARS        ["'+-*/=|!&%^?><:\]]
  1552. XIDENT        [a-zA-Z0-9_]+
  1553. XU            "unsigned"
  1554. XI            "int"
  1555. XL            "long"
  1556. XS            "short"
  1557. XC            "char"
  1558. XR            "register"
  1559. XST            "static"
  1560. XI8            "INT8"
  1561. XI16            "INT16"
  1562. XI32            "INT32"
  1563. XUN_ST        ("union "|"struct "){IDENT}
  1564. XDECLTAB1    ({I}|{C}|{S}|{L}|{U}|{R}|{ST}|{I8}|{I16}|{I32}|{UN_ST})[\t]{IDENT}
  1565. XDECLTAB2    ({I}|{C}|{S}|{L}|{U}|{R}|{ST}|{I8}|{I16}|{I32}|{UN_ST})[\t ][\t ]+{IDENT}
  1566. X%START    COMMENT PREPROC
  1567. X%%
  1568. X<PREPROC>.*\n                            {ECHO;
  1569. X                                         BEGIN 0;
  1570. X                                        }
  1571. X^"#"                                    {
  1572. X                                        ECHO;
  1573. X                                        BEGIN PREPROC;
  1574. X                                        }
  1575. X<COMMENT>([^*\n]|"*"+[^*/\n])*            ECHO;
  1576. X<COMMENT>([^*\n]|"*"+[^*/\n])*"*"*"*/"    {ECHO;
  1577. X                                         BEGIN 0;
  1578. X                                        }
  1579. X<COMMENT>.|\n                            ECHO;
  1580. X"/*"                {
  1581. X                        ECHO;
  1582. X                        BEGIN COMMENT;
  1583. X                    }
  1584. X"extern  "            {
  1585. X                        ;
  1586. X                    }
  1587. X"* "                {
  1588. X                        fprintf(yyout,"*");
  1589. X                    }
  1590. X{IDENT}","            {
  1591. X                    register char *cptr = yytext + yyleng - 1;
  1592. X                        if(verbose)
  1593. X                            change_report(yytext);
  1594. X                        while((*cptr != '\t') && (*cptr != ' ') && (*cptr != '*'))
  1595. X                            *cptr-- = 0;
  1596. X                        fprintf(yyout,",",yytext);
  1597. X                    }
  1598. X{IDENT}")"            {
  1599. X                    register char *cptr = yytext + yyleng - 1;
  1600. X                        if(verbose)
  1601. X                            change_report(yytext);
  1602. X                        while((*cptr != '\t') && (*cptr != ' ') && (*cptr != '*'))
  1603. X                            *cptr-- = 0;
  1604. X                        fprintf(yyout,")",yytext);
  1605. X                    }
  1606. X{STRING}            ECHO;
  1607. X"'"."'"                ECHO;
  1608. X.|\n                ECHO;
  1609. X
  1610. SHAR_EOF
  1611. $TOUCH -am 1127134189 'mkoldproto.l' &&
  1612. chmod 0644 mkoldproto.l ||
  1613. echo 'restore of mkoldproto.l failed'
  1614. Wc_c="`wc -c < 'mkoldproto.l'`"
  1615. test 3418 -eq "$Wc_c" ||
  1616.     echo 'mkoldproto.l: original size 3418, current size' "$Wc_c"
  1617. exit 0
  1618. --------------------------------------------------------------------
  1619. Warren Tucker, TuckerWare emory!n4hgf!wht or wht@n4hgf.Mt-Park.GA.US
  1620. Hacker Extraordinaire  d' async PADs,  pods,  proteins and protocols
  1621.  
  1622. exit 0 # Just in case...
  1623. -- 
  1624. Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
  1625. Sterling Software, IMD           UUCP:     uunet!sparky!kent
  1626. Phone:    (402) 291-8300         FAX:      (402) 291-4362
  1627. Please send comp.sources.misc-related mail to kent@uunet.uu.net.
  1628.